Makra |
Co je to makro
Makro je posloupnost příkazů editoru. Tuto posloupnost lze zaznamenat a následně opakovaně přehrávat. Tím lze zjednodušit opakované operace (příklady použití jsou uvedeny níže)
Jak to pracuje
Stisknutím tlačítka záznam (CTRL+F5) se začínají všechny operace s textem v editoru zaznamenávat. Při zahájení záznamu se kurzor změní na šipku s kamerou. Zpět se změní při ukončení nebo přerušení nahrávání.
Po ukončení záznamu (CTRL+F5) se záznam ukončí. Objeví se dialog, ve kterém makro pojmenujete (není nutné). Makro je okamžitě k dispozici pod klávesovou zkratkou F5.
Makro manažer
K údržbě maker slouží tzv. Makro Manažer (Shift+Ctrl+F5). Zde můžete jednotlivá makra mazat, editovat, spouštět opakovaně, přiřadit jim klávesovou zkratku...
Omezení
Do makra se nezaznamenávají akce, provedené pomocí myši. Označování bloku dělejte pomocí SHIFT+šipky
Makro nepracuje s příkazy pro hledání a nahrazení textu
Délka makra je omezena pouze dostupnou pamětí počítače. Vzhledem k tomu, že jeden záznam tvoří pouze kód příkazu a znak je velikost téměř neomezená. Obsah makra lze od verze 3.3.3 editovat a zpět kompilovat. Přehled dostupných příkazů najdete zde.
Editace makra
Pokud si zvolíte v Makro manažeru editaci makra, otevře se vám nový soubor s příponou .PME. K dispozici je zvýrazňovač PSPad Makro i šablona s příkazy (Ctrl+Space).
Příkaz pro vložení znaku je nastaven na Ctrl+Enter
Doporučuji následující nastavení zvýrazňovače pro editaci maker:
Komentáře černá, font normální (vkládané znaky v lomených závorkách)
Identifikátory červená, font normální (chybný příkaz bude červeně)
Klíčová slova modrá, font normální
Příklady použití
Příklad1:
Měl jsem text ve tvaru:
21: if KeyComp('del') then Result := tkKey else
21: if KeyComp('start') then Result := tkKey else
90: if KeyComp('findstr') then Result := tkKey else
Potřeboval jsem smazat vždy pro určitý počet řádků první tři znaky a vložit jednu mezeru. V tomto případě nelze použít hledání s nahrazením, protože text není stejný. Samozřejmě, že by to šlo přes sloupcový blok odmazat, potom si jako sloupcový blok označit první sloupec mezer a přes hledat a nahradit jednu mezeru nahradit dvěmi. Ale je to spousta práce s myší, přepínání bloků, protože upravený text potřebuji následně umístit do jiného souboru.To je přesně ta správná práce pro MAKRO. Postup záznamu:
Nyní stačí opakovaně mačkat F5 a řádky jsou upraveny
Příklad2:
Potřebuji vytvořit následující řádky
fIdentFuncTable[72] := Func72;
fIdentFuncTable[73] := Func73;
fIdentFuncTable[74] := Func74;
Mohl bych si je kopírovat a přepisovat čísla. Můžu ale využít MAKRO:
Mačkám F5 a před očima se mi objevují požadované řádky. Řádků bylo moc a takhle to byla otázka chvilky bez zbytečného najíždění a přepisování čísel na dvou místech v kopírovaných řádcích